import request from './request'

/**
 * 测试用例管理API
 */

// 获取测试用例列表
export function getTestCases(params) {
  return request({
    url: '/test-cases/',
    method: 'get',
    params
  })
}

// 获取测试用例详情
export function getTestCase(id) {
  return request({
    url: `/test-cases/${id}`,
    method: 'get'
  })
}

// 创建测试用例
export function createTestCase(data) {
  return request({
    url: '/test-cases/',
    method: 'post',
    data
  })
}

// 更新测试用例
export function updateTestCase(id, data) {
  return request({
    url: `/test-cases/${id}`,
    method: 'put',
    data
  })
}

// 删除测试用例
export function deleteTestCase(id) {
  return request({
    url: `/test-cases/${id}`,
    method: 'delete'
  })
}

// 批量删除测试用例
export function batchDeleteTestCases(ids) {
  return request({
    url: '/test-cases/batch-delete',
    method: 'post',
    data: { ids }
  })
}

// 生成测试用例
export function generateTestCases(data) {
  return request({
    url: '/test-cases/generate',
    method: 'post',
    data
  })
}

// 导入测试用例
export function importTestCases(projectId, file) {
  const formData = new FormData()
  formData.append('file', file)
  
  return request({
    url: `/test-cases/import?project_id=${projectId}`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 导出测试用例
export function exportTestCases(params) {
  return request({
    url: '/test-cases/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// 复制测试用例
export function copyTestCase(id) {
  return request({
    url: `/test-cases/${id}/copy`,
    method: 'post'
  })
}
